#ifndef MOVE_H_
# define MOVE_H_

#define CAPTURE_FLAG 0x4000




class Move
{
	Move(unsigned int from, unsigned int to, unsigned int flags);
	void operator=(Move a);

	unsigned int getTo() const;
	unsigned int getFrom() const;
	unsigned int getFlags() const;

	void setTo(unsigned int to);
	void setFrom(unsigned int from);

	bool isCapture() const;

	unsigned int getButterflyIndex() const;
	bool operator==(Move a) const;
	bool operator!=(Move a) const;

	unsigned short asShort() const;

protected:
	unsigned int m_Move; // or short or template type
}; // !class Move

#endif // !MOVE_H_